settings: Overallocate property_values
authorTimm Bäder <mail@baedert.org>
Thu, 31 Dec 2020 11:48:41 +0000 (12:48 +0100)
committerTimm Bäder <mail@baedert.org>
Sun, 3 Jan 2021 10:01:29 +0000 (11:01 +0100)
Instead of walking the pspecs twice and checking for the owner_type,
just allocate n_pspecs entries. They are the same value right now
anyway, but even if they aren't it doesn't hurt to have a few extra ones
allocated.

gtk/gtksettings.c

index 02b02c3911dc4c38aeb4eb2d15d86c828068e7bf..2338fcf5304139b954ef14c35766f08cd68deafb 100644 (file)
@@ -236,6 +236,7 @@ static void
 gtk_settings_init (GtkSettings *settings)
 {
   GParamSpec **pspecs, **p;
+  guint n_pspecs;
   guint i = 0;
   char *path;
   const char * const *config_dirs;
@@ -250,14 +251,11 @@ gtk_settings_init (GtkSettings *settings)
    * notification for them (at least notification for internal properties
    * will instantly be caught)
    */
-  pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (settings), NULL);
-  for (p = pspecs; *p; p++)
-    if ((*p)->owner_type == G_OBJECT_TYPE (settings))
-      i++;
-  settings->property_values = g_new0 (GtkSettingsPropertyValue, i);
-  i = 0;
+  pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (settings), &n_pspecs);
+  settings->property_values = g_new0 (GtkSettingsPropertyValue, n_pspecs);
   g_object_freeze_notify (G_OBJECT (settings));
 
+  i = 0;
   for (p = pspecs; *p; p++)
     {
       GParamSpec *pspec = *p;